1) Field of the Invention
The present invention relates to a technology for speedily and reliably recovering data, such as application software and/or settings data, in a portable information device when the data has errors.
2) Description of the Related Art
Conventionally, a portable information device for communications has a volatile memory of a predetermined size, a nonvolatile memory, and a battery. The volatile memory is usually loaded with an application software and settings data. Further, the portable information device controls the execution of the application software on receiving the request from the user and provides various services to the user.
Generally, in personal computers, the application software is loaded beforehand in the hard disk drive and, during execution, the application software is loaded in the volatile memory that may be a random access memory (RAM) or the like. Particularly, because the portable information device does not possess a hard disk drive (HDD), the application software is loaded in a RAM and the battery supplies the required power for storing the data in the RAM. Particularly, when data of the RAM is deleted or damaged, as a result of an unstable supply of current from the battery to the RAM, there is a need to reconnect the portable information device to the personal computer or the like and reload the application software.
When the data in the RAM is deleted or damaged, the portable information device cannot function normally because the application software cannot be executed properly. Supplying a stable power supply to the RAM can solve this problem. However, it is practically not possible for the battery to stably supply power to the RAM, because that power is obtained from the battery only when the battery is used.
Some of the application software is customizable based on the requirements of the user and data related to the customization is stored in the RAM. If this data related to the customization gets deleted or damaged as a result of an unstable power supply, all the effort put into the customization of the application software is rendered useless. Therefore, there are difficulties in using the customizable type of application software in the portable information device.
Methods for recovering the data, if the data is deleted or damaged, have been suggested. For example, Japanese Patent Laid-Open Publication No. 5-241970 describes one method. According to the method disclosed in this publication, the data loaded in the memory, which is powered by the battery, is protected by simple operations. Moreover, the data can easily be recovered and restored if the data stored in the memory is deleted or gets damaged while the battery is disconnected.
Japanese Patent Laid-Open Publication No. 9-204205 discloses another method for recovering the data. According to the method disclosed in this publication, when the control program is damaged, it is recovered and executed. Moreover, the information relating to why and how the control program was damaged is stored for future reference and analysis.
However, a problem with the method disclosed in Japanese Patent Laid-Open Publication No. 5-241970, that it is not possible to determine the exact time of damage of data and ensure the reliability of the recovered backup data, because a detecting unit specifically meant for detecting the damage of data is not provided. In addition, even when it is possible to make corrections in the damaged data by determining the exact position, there is a problem that because duplication of backup is required to be performed on the data, it takes a long time for the recovery of the data.
In the method disclosed in Japanese Patent Laid-Open Publication No. 9-204205, whether or not the data is damaged is determined by comparing the control program with the backup data stored in a nonvolatile memory. However, the user customizes the control program while he/she is using the portable terminal, on the other hand the backup data remains unchanged. Therefore, there is a problem in that the presence of an error cannot be determined by comparison of the control program customized by the user and backup data that is unchanged. Moreover, there is a problem that a long time is required for the comparison of the data because each datum of the control program is compared with each datum of the backup data.